The present invention relates generally to an improved technique for generating a constellation for a computer modem. In particular, the present invention is directed to accommodating signal Robbed-Bit Signaling (RBS), programmed attenuation (pad), and Inter-Modulation Distortion (IMD) during a Digital Impairment Sequence (DIL) conducted with V.90 modems or the like, to calculate minimum distance between constellation points, for an acceptable probability of error occurrence. The generated constellation may be re-evaluated for optimization of bit rate.
The necessity of digital communication over existing communications networks, such as public switch telephone network (PSTN), has necessitated the use of increasingly complex and efficient modulators/demodulators (modems). Because most communication systems were originally designed as analog systems, conventional modems have always been limited by the necessity of analog capabilities. Consequently, such modems operate as if the entire communications network, is an analog system, even though much of the communication throughout the PSTN is digital in nature.
Such modems are characterized by the use of an analog-to-digital converter (ADC), which is used to digitize analog signals received by the modem for transmission to a digital portion of the PSTN. Unfortunately, normal speech (due to its wide dynamic range) does not lend itself well to efficient linear digital encoding. Two types of quantization systems are used in such modems, xe2x80x9cxcexc-lawxe2x80x9d and xe2x80x9cA-lawxe2x80x9d. Both systems encompass signal compression algorithms to optimize or modify the dynamic range of an analog signal prior to digitization. Both of these systems are used to optimize the PSTN for traditional voice communications. Thus, traditional encoding systems impose significant limitations on data communications.
When a client modem transmits data, it uses a digital-to-analog converter (DAC) such as 15 in FIG. 3, to convert digital signals into analog signals. Eventually, the analog signal is received and converted back to digital form by an analog-to-digital converter (ADC) somewhere in PSTN 40. When the analog signal levels used by the DAC in the client modem do not accurately respond to the quantization intervals used by the receiving ADC, the data transmitted may not be properly converted back into the exact digital form originally sent. If the receiving ADC incorrectly converts an analog signal transmitted, the receiving modem will not receive the same data that was transmitted.
In Prior Art voice communications systems, such conversion errors were not particularly problematic, as such conversions would not produce noticeable artifacts in voice signals. However, in a data communications network, such errors in conversion result in data errors, which may not be acceptable in a data communications system.
In order to avoid such communications errors, certain error-checking protocols may be used. However, such protocols may require retransmission of corrected data, thereby reducing the rate at which data can be transmitted. The result is greatly reduced digital efficiency for PSTN 40 comprising the digital communications system.
Conventional analog modems may use a symbol table containing digital bit patterns, known as a constellation, which corresponds to each signaling level or quantization level. As data is transmitted by the modem, specific bit patterns from the data stream are correlated to different symbols in the table. Each symbol is converted by DAC to transmit a unique analog signal to the analog portion of PSTN 40.
However, in order for accurate communications to take place, the ADC at the receiving modem 30 must convert the analog signals back into the original digital bit pattern. With conventional modems, this is very often not possible unless the system is equipped with substantial error correcting protocols. Thus, the arrangement and characteristics of the constellation determines the permissible transmission rate.
A significant problem with accurate and efficient transmission of digital data over PSTN 40 is the difference between symbol table correlation based upon ideal quantization intervals and the actual optimized quantization intervals appropriate for the real signals received at a modem. This situation creates errors, forcing the transmission rate, or bit rate to be decreased.
This problem has been addressed in part by such systems as that disclosed in Cai et al., U.S. Pat. No. 5,831,561, issued Nov. 3, 1998, and incorporated herein by reference. For a given bit rate, the system of Cai et al. uses a process of dynamically selecting a constellation which is optimized in the sense that distances between adjacent symbols are maximized. This dynamic selection recursively eliminates symbols with the smallest distance to adjacent symbols until the number of symbols left reaches a predetermined value based upon the given bit rate.
Unfortunately, the system of Cai et al. requests that the number of symbols in the constellation be predetermined, and the symbol error probability of the selected constellation cannot be guaranteed. In addition, the transmitting power limit is not being considered. In most circumstances, it may be more desirable to select a constellation which provides maximum bit rate (determined by the number of symbols in the constellation) with the restriction that symbol error probability under certain noise variance is smaller than a predefined value and the transmitting power is smaller than a maximum value. Further, it may also be necessary to re-evaluate the selected constellation to optimize bit rate when the channel condition changes.
The present invention relates to a technique for generating constellations for a V.90 type modem, the constellations are generated by selecting symbols in the available symbol tables with the constraint that the distance between adjacent selected symbols is greater than a minimum distance Dmin. Dmin is selected such that the number of symbols in the constellation is maximized with the restriction that the symbol error probability is smaller than a predefined value-under certain noise variance.
In a uniform distance constellation, the symbol error probability is a function of the uniform distance for a given noise variance. Therefore, minimum uniform distance can be calculated by solving this equation. While in a non-uniform distance constellation, such as the constellation used in V.90 type modems, due to the non-linearity of xe2x80x9cxcexc-lawxe2x80x9d, or xe2x80x9cA-lawxe2x80x9d coding, the symbol error probability of the constellation for a given noise variance is a function of multiple arguments, (the distances between adjacent symbols).
All these distances may be determined by Dmin. Theoretically, it is still possible to find the minimum Dmin by solving the equation using an enumerating method. However, such an approach may require tremendous calculation power. A more practical approach is to approximate this equation by replacing all the distances with Dmin. Basically, such an approach is an attempt to solve the problem with the approach used in a uniform distance constellation.
However, the present inventors have determined that a much more accurate approximation exists, in which.the symbol error probability is a function of Dmin as well as xe2x80x9cdensity ratioxe2x80x9d r=L/M, where M is the total number of symbols in a constellation and L is the number of symbols where the distance from its neighbors is less than a small multiple of Dmin. Unfortunately, since values of L and M are dependent on Dmin, it may be difficult to determined Dmin directly from the symbol error probability and noise variance.
Based upon the noise variance and the predefined symbol error probability, a first guess for Dmin may be used to calculate values L and M. These values may then be plugged back into the equation and a new value for Dmin may be calculated. The process may be iterated a number of times, although in practice three iterations may be more than sufficient to determine the correct values for Dmin.
Once Dmin has been calculated, the overall constellation may be determined.
Accordingly, using the present invention, constellations may be generated for each of the six slots of a V.90 frame. The power limit is incorporated into the constellation generation process to guarantee that the average power of the constellations is less than a predefined value. The final constellations may be adjusted to fit the request of the modulus encoder.
The resulting constellation may be optimized for the data channel. In the present invention, optimization may be achieved by incorporating a technique for renegotiating data rate (e.g., constellation) based upon channel conditions. If a certain number of CRC (Cyclic Redundancy Check) errors are detected, it is determined that the data channel is too noisy and the constellation should be downsized. If no errors are detected, or the number of errors detected are less than a minimum value, then it may be determined that a higher bit rate is achievable and a larger constellation may be used. In either instance, the constellation may be again recalculated to optimize data bandwidth.